package com.pearadmin.pro.modules.stu.domain;

import java.math.BigDecimal;
import java.util.Date;

import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.pearadmin.pro.common.web.base.domain.BaseDomain;
import lombok.Data;
import org.apache.ibatis.type.Alias;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;
import java.util.List;

/**
 * 学生订单对象 scrm_stu_order
 *
 * @author chenJian
 * @date 2021-09-09
 */
@Data
@Alias("StuOrder")
@TableName("scrm_stu_order")
public class StuOrder extends BaseDomain {

    /**
     * ID
     */
    @TableField("id")
    @ApiModelProperty(value = "ID")
    private Long id;

    /**
     * 学生商机ID
     */
    @TableField("busp_id")
    @ApiModelProperty(value = "学生商机ID")
    private Long buspId;

    /**
     * 订单编号
     */
    @TableField("order_sn")
    @ApiModelProperty(value = "订单编号")
    private String orderSn;

    /**
     * 订单类型
     */
    @TableField("order_type")
    @ApiModelProperty(value = "订单类型")
    private String orderType;

    /**
     * 优惠政策
     */
    @TableField("pre_policy")
    @ApiModelProperty(value = "优惠政策")
    private String prePolicy;

    /**
     * 订单总额
     */
    @TableField("total_amt")
    @ApiModelProperty(value = "订单总额")
    private BigDecimal totalAmt;

    /**
     * 优惠金额
     */
    @TableField("pre_amt")
    @ApiModelProperty(value = "优惠金额")
    private BigDecimal preAmt;

    /**
     * 应收金额
     */
    @TableField("rec_amt")
    @ApiModelProperty(value = "应收金额")
    private BigDecimal recAmt;

    /**
     * 是否特殊金额:否1是
     */
    @TableField("is_special")
    @ApiModelProperty(value = "是否特殊金额:否1是")
    private Long isSpecial;

    /**
     * 特殊优惠金额
     */
    @TableField("special_amt")
    @ApiModelProperty(value = "特殊优惠金额")
    private BigDecimal specialAmt;

    /**
     * 特殊优惠备注
     */
    @TableField("special_remark")
    @ApiModelProperty(value = "特殊优惠备注")
    private String specialRemark;

    /**
     * 特殊优惠订单审核状态
     */
    @TableField("special_check_status")
    @ApiModelProperty(value = "特殊优惠订单审核状态")
    private Long specialCheckStatus;

    /**
     * 支付方式
     */
    @TableField("pay_chn")
    @ApiModelProperty(value = "支付方式")
    private Long payChn;

    /**
     * 已支付定金id
     */
    @TableField("deposit_id")
    @ApiModelProperty(value = "已支付定金id")
    private Long depositId;

    /**
     * 订单状态:0未支付1已支付2已支付定金3已支付全款4部分退款5全额退款6已取消
     */
    @TableField("pay_status")
    @ApiModelProperty(value = "订单状态:0未支付1已支付2已支付定金3已支付全款4退款申请中5部分退款6全额退款7已取消")
    private Long payStatus;
    /**
     * 订单状态:0未支付1已支付2已支付定金3已支付全款4部分退款5全额退款6已取消
     */
    @TableField("odr_sts")
    @ApiModelProperty(value = "订单状态：0已取消1正常")
    private Long odrSts;

    /**
     * 课程协议状态:0未签约1已签约
     */
    @TableField("agre_status")
    @ApiModelProperty(value = "课程协议状态:0未签约1已签约")
    private Long agreStatus;

    /**
     * 课程协议发送:0未发送1已发送
     */
    @TableField("agre_send")
    @ApiModelProperty(value = "课程协议发送:0未发送1已发送")
    private Long agreSend;

    /**
     * 酒店名称
     */
    @TableField("hotel_name")
    @ApiModelProperty(value = "酒店名称")
    private String hotelName;

    /**
     * 酒店联系人
     */
    @TableField("hotel_relative")
    @ApiModelProperty(value = "酒店联系人")
    private String hotelRelative;

    /**
     * 酒店联系人电话
     */
    @TableField("hotel_phone")
    @ApiModelProperty(value = "酒店联系人电话")
    private String hotelPhone;

    /**
     * 酒店地址
     */
    @TableField("hotel_add")
    @ApiModelProperty(value = "酒店地址")
    private String hotelAdd;

    /**
     * 酒店房间类型
     */
    @TableField("hotel_type")
    @ApiModelProperty(value = "酒店房间类型")
    private String hotelType;

    /**
     * 酒店单价
     */
    @TableField("hotel_price")
    @ApiModelProperty(value = "酒店单价")
    private BigDecimal hotelPrice;

    /**
     * 酒店入住时间
     */
    @TableField("hotel_btime")
    @ApiModelProperty(value = "酒店入住时间")
    private Date hotelBtime;

    /**
     * 酒店推住时间
     */
    @TableField("hotel_etime")
    @ApiModelProperty(value = "酒店推住时间")
    private Date hotelEtime;

    /**
     * 逻辑删除
     */
    @TableField("deleted")
    @ApiModelProperty(value = "逻辑删除")
    private Integer deleted;


    /**
     * 学籍信息
     */
    @TableField(exist = false)
    private  List<StuRoll> rolls;
    //成绩单信息
    @TableField(exist = false)
    private List<StuGrade> grades;
    //成绩单物流信息
    @TableField(exist = false)
    private List<StuTranscriptAdd> transcriptAdds;
    /**
     * 学生基本信息
     */
    @TableField(exist = false)
    private StuBusp busp;
    //学生订单课程信息
    @TableField(exist = false)
    private List<StuOrderCourse> orderCourses;

}
